package com.cqz.services;

import com.cqz.mapper.UserInfoMapper;
import com.cqz.dao.UserInfo;
import com.cqz.tools.GeneratorMD5;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;

/**
 * UserService服务层
 */
@Service("userService")
public class UserService{
    @Autowired
    private UserInfoMapper userInfoMapper;

    /**
     * 根据用户名和密码查询得到用户并返回
     * @param user_name
     * @param user_password
     * @return
     */
    public UserInfo checkUser(String user_name, String user_password) {
        String password=GeneratorMD5.getMd5(user_password);
        UserInfo userInfo=userInfoMapper.selectByUser(new UserInfo(user_name,password));
        return userInfo;
    }

    /**
     * 根据用户名和密码添加一个用户信息
     * @param user_name
     * @param user_password
     * @return
     */
    public boolean addUser(String user_name, String user_password) {
        String password=GeneratorMD5.getMd5(user_password);
        int i=userInfoMapper.insert(new UserInfo(user_name,password,"文学","c",new BigDecimal(0)));
        if(i<=0) return false;
        return true;
    }

    /**
     * 根据用户名查询数据库中该用户名是否已经注册，并返回一个状态信息
     * @param user_name
     * @return
     */
    public String findUser(String user_name) {
        UserInfo userInfo=userInfoMapper.selectByUsername(new UserInfo(user_name,null));
        if(userInfo==null){
            return "0";
        }
        return userInfo.getUstate();
    }

    /**
     * 根据uid更新用户密码
     * @param uid
     * @param user_password
     * @return
     */
    public boolean updatePassword(int uid, String user_password) {
        String password=GeneratorMD5.getMd5(user_password);
        UserInfo userInfo=new UserInfo();
        userInfo.setUid(uid);userInfo.setUpassword(password);
        int i=userInfoMapper.updateByPrimaryKeySelective(userInfo);
        if(i<=0) return false;
        else return true;
    }

    /**
     * 根据uid更新用户收货地址
     * @param uid
     * @param unewaddress
     * @return
     */
    public boolean updateAddress(int uid, String unewaddress) {
        UserInfo userInfo=new UserInfo();
        userInfo.setUid(uid);userInfo.setUaddress(unewaddress);
        int i=userInfoMapper.updateByPrimaryKeySelective(userInfo);
        if(i<=0) return false;
        else return true;
    }

    /**
     * 根据id查询用户信息
     * @param id
     * @return
     */
    public UserInfo findUser(int id){
       return userInfoMapper.selectByPrimaryKey(id);
    }

    /**
     * 根据uid更新用户信息
     * @param ue
     * @return
     */
    public boolean updateByUid(UserInfo ue) {
        int i=userInfoMapper.updateByPrimaryKeySelective(ue);
        if(i<=0) return false;
        else return true;
    }
}
